import dataclasses
from typing import Dict, List, Optional

from google.protobuf.internal.enum_type_wrapper import EnumTypeWrapper

import coin.proto.options_pricing_pb2 as op_pb2


PricingParamsType = Dict[
    EnumTypeWrapper, List[op_pb2.OptionsPricingParamsProto]]


@dataclasses.dataclass
class OptionsGreeks:
  implied_volatility: Optional[float] = None
  delta: Optional[float] = None
  gamma: Optional[float] = None
  theta: Optional[float] = None
  vega: Optional[float] = None
  rho: Optional[float] = None
  delta_in_quote: Optional[float] = None
  gamma_in_quote: Optional[float] = None
  theta_in_quote: Optional[float] = None
  vega_in_quote: Optional[float] = None
  rho_in_quote: Optional[float] = None
